Lattice Crosslink
The Lattice CrossLink FPGA Camera Emulator is a hardware-based MIPI CSI-2 image sensor emulator designed to support early-stage camera driver development, bring-up, and validation on embedded platforms such as NVIDIA Jetson devices, without requiring a physical camera module.
The emulator behaves like a real Sony IMX219 image sensor. It responds to standard I²C register transactions and transmits CSI-2–compliant RAW10 video streams, allowing the host system to detect, initialize, and operate it using the same software stack and workflows as a real sensor.
Synthetic image data is generated internally using deterministic test patterns and transmitted over a standard MIPI CSI-2 interface. From the host’s perspective, the emulator integrates seamlessly with the Linux camera stack (Argus / V4L2), enabling the use of existing camera pipelines without modification.
Main Features
- Emulation of the Sony IMX219 control interface (I²C register map)
- Internal generation of deterministic RAW10 image test patterns
- MIPI CSI-2 transmission over two data lanes
- Support for multiple resolutions and frame rates aligned with Jetson sensor modes
- Fully hardware-based solution with no external image source required

Lattice CrossLink Master Link Board
The camera emulator is implemented on the Lattice CrossLink Master Link Evaluation Board (LIF-MD6000), which is based on the Lattice CrossLink FPGA family. These devices are designed for embedded vision and video interfacing applications and integrate native support for MIPI CSI-2 communication.
The CrossLink FPGA includes hardened MIPI D-PHY transceivers, providing the physical layer required for CSI-2 transmission without external PHY components. This allows the FPGA to directly drive a CSI-2 interface while maintaining protocol-compliant signaling [1].
Key Board Capabilities
- Hardened MIPI D-PHY transmitter (CSI-2)
- Support for up to 4 MIPI data lanes
- Soft IP support for interface bridging solutions
- Internal high-frequency oscillators and clocking resources
- Low power consumption, suitable for continuous operation
In this project, the FPGA operates as a MIPI CSI-2 transmitter and emulates the behavior of a camera sensor by responding to I²C configuration transactions and transmitting video data over the CSI-2 interface.
Requirements
This project is intended as a development and validation tool. The requirements below summarize what is needed to reproduce and use the demo.
Hardware requirements
- Lattice CrossLink Master Link Board
- NVIDIA Jetson Developer Kit
- FFC/FPC CSI cable
- Custom connector board
Software requirements
- Lattice Diamond Software
- NVIDIA JetPack (5.x or 6.x)
- Camera validation tools (GStreamer, v4l2-utils)
Demo Setup and Limitations
The demo setup consists of a Lattice CrossLink FPGA board connected to an NVIDIA Jetson platform through a CSI-2 interface using a custom adapter PCB.
The FPGA is programmed with the camera emulator bitstream before booting the Jetson. During system startup, the Jetson probes the I²C bus and detects the emulator as an IMX219-compatible sensor.
Once booted, standard camera pipelines using nvarguscamerasrc can be executed to capture video from the emulator. Multiple sensor modes are exposed to the Jetson camera stack, allowing seamless integration with existing applications and workflows.
Limitations
- The FPGA must be programmed before the Jetson boots; otherwise, the camera will not be detected.
- Only a subset of IMX219 registers is emulated, sufficient for driver initialization and streaming.
- Image colors may differ from the internally generated patterns due to ISP processing applied by the Jetson (Argus pipeline).
- If the CSI capture pipeline enters an unrecoverable error state, a full Jetson reboot may be required to restore camera operation.
- Only Sony IMX219 operating modes 0, 1, and 2 are currently supported by the emulator.